home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / dbg / ds3100.md / dbgDbxInt.h < prev    next >
C/C++ Source or Header  |  1992-12-18  |  4KB  |  149 lines

  1. /*
  2.  * dbgDbxInt.h --
  3.  *
  4.  *    Exported types and procedure headers for the debugger module.
  5.  *    This file is needed for the kdbx interface.  Once kdbx is abandoned
  6.  *    in favor of kgdb this file should be deleted.
  7.  *
  8.  *    Copyright (C) 1989 Digital Equipment Corporation.
  9.  *    Permission to use, copy, modify, and distribute this software and
  10.  *    its documentation for any purpose and without fee is hereby granted,
  11.  *    provided that the above copyright notice appears in all copies.
  12.  *    Digital Equipment Corporation makes no representations about the
  13.  *    suitability of this software for any purpose.  It is provided "as is"
  14.  *    without express or implied warranty.
  15.  *
  16.  * $Header: /cdrom/src/kernel/Cvsroot/kernel/dbg/ds3100.md/dbgDbxInt.h,v 1.1 91/08/02 17:38:56 jhh Exp $ SPRITE (Berkeley)
  17.  */
  18.  
  19. #ifndef _DBG
  20. #define _DBG
  21.  
  22. #ifndef _SPRITE
  23. #include <sprite.h>
  24. #endif
  25.  
  26. /*
  27.  * Variable to indicate if are using the rs232 debugger or the network debugger.
  28.  */
  29. extern    Boolean    dbg_Rs232Debug;
  30.  
  31. /*
  32.  * Variable to indicate that dbg wants a packet.
  33.  */
  34. extern    Boolean    dbg_UsingNetwork;
  35.  
  36. /*
  37.  * Variable that indicates that we are under control of the debugger.
  38.  */
  39. extern    Boolean    dbg_BeingDebugged;
  40.  
  41. /*
  42.  * Variable that indicates that we are in the debugger command loop.
  43.  */
  44. extern    Boolean    dbg_InDebugger;
  45.  
  46. /*
  47.  * The maximum stack address.
  48.  */
  49. extern    int    dbgMaxStackAddr;
  50.  
  51. /*
  52.  * Debugger using syslog to dump output of call command or not.
  53.  */
  54. extern    Boolean    dbg_UsingSyslog;
  55.  
  56. #define    DBG_MAX_REPLY_SIZE    1024
  57. #define    DBG_MAX_REQUEST_SIZE    1024
  58.  
  59. /*
  60.  * The UDP port number that the kernel and kdbx use to identify a packet as
  61.  * a debugging packet.  (composed from "uc": 0x75 = u, 0x63 = c)
  62.  */
  63.  
  64. #define DBG_UDP_PORT     0x7563
  65.  
  66. /*
  67.  * Request and reply buffer headers. 
  68.  */
  69.  
  70. typedef struct {
  71.     int        num;
  72.     int        request;
  73.     unsigned    addr;
  74.     int        data;
  75. } Dbg_Request;
  76.  
  77. typedef struct {
  78.     int        num;
  79.     int        status;
  80.     int        data;
  81. } Dbg_Reply;
  82.  
  83. /*
  84.  * Values for the request field of a Dbg_Request.
  85.  */
  86.  
  87. #define DBG_UREAD   3       /* read from process's user structure */
  88. #define DBG_UWRITE  6       /* write to process's user structure */
  89. #define DBG_IREAD   1       /* read from process's instruction space */
  90. #define DBG_IWRITE  4       /* write to process's instruction space */
  91. #define DBG_DREAD   2       /* read from process's data space */
  92. #define DBG_DWRITE  5       /* write to process's data space */
  93. #define DBG_CONTP   7       /* continue stopped process */
  94. #define DBG_SSTEP   9       /* continue for approximately one instruction */
  95. #define DBG_PKILL   8       /* terminate the process */
  96. #define DBG_DBREAD  14      /* read in bytes */
  97. #define DBG_DBWRITE 15      /* write in bytes */
  98. #define DBG_DHREAD  16      /* read in halfwords */
  99. #define DBG_DHWRITE 17      /* write in halfwords */
  100. #define DBG_QUERY   18      /* query returns flags about target environment */
  101. #define DBG_BEGINCALL 19
  102. #define DBG_ENDCALL   20
  103. #define DBG_DETACH    21
  104. #define DBG_GETMAXSTACK 22
  105. #define DBG_GETSTATUS 23
  106. /*
  107.  * These ones are used by kmsg.
  108.  */
  109. #define DBG_GET_VERSION_STRING    100
  110. #define DBG_REBOOT        101
  111.  
  112. /*
  113.  * Variable that is set to true when we are called through the DBG_CALL macro.
  114.  */
  115. extern    Boolean    dbgPanic;
  116.  
  117. /*
  118.  * Macro to call the debugger from kernel code.
  119.  */
  120. extern    void Dbg_Call _ARGS_((void));
  121. #define DBG_CALL    dbgPanic = TRUE; Dbg_Call();
  122.  
  123. /*
  124.  * Number of bytes between acknowledgements when the the kernel is writing
  125.  * to kdbx.
  126.  */
  127. #define DBG_ACK_SIZE    256
  128.  
  129. extern    void    Dbg_Init _ARGS_((void));
  130. extern    void    Dbg_InputPacket _ARGS_((Address packetPtr, int packetLength));
  131. extern    Boolean    Dbg_InRange _ARGS_((unsigned int addr, int numBytes,
  132.                     Boolean writeable));
  133. extern    unsigned    Dbg_Main _ARGS_((void));
  134.  
  135. extern Boolean
  136.     Dbg_ValidatePacket _ARGS_((int size, Net_IPHeader *ipPtr, int *lenPtr,
  137.                    Address *dataPtrPtr,
  138.                    Net_InetAddress *destIPAddrPtr,
  139.                    Net_InetAddress *srcIPAddrPtr,
  140.                    unsigned int *srcPortPtr));
  141. extern void
  142.     Dbg_FormatPacket _ARGS_((Net_InetAddress srcIPAddress,
  143.                  Net_InetAddress destIPAddress,
  144.                  unsigned int destPort, int dataSize,
  145.                  Address dataPtr));
  146. extern int    Dbg_PacketHdrSize _ARGS_((void));
  147.  
  148. #endif /* _DBG */
  149.